# -*- coding: utf-8 -*-
# @File  : about_thread.py
# @Author: zbh
# @Date  : 2025/2/27_13:50

'''
1、python多线程适合于IO密集型任务，不适合于CPU密集型任务
2、python多线程的全局解释器锁（GIL），同一时刻只有一个线程在执行，无法利用多核CPU的优势
3、python多线程的实现方式：
    1、使用threading模块
    2、使用concurrent.futures模块
4、python多线程的优点：
    1、提高程序的响应速度
    2、提高程序的并发性
5、python多线程的缺点：
    1、线程之间的共享数据可能会出现问题
    2、线程之间的同步可能会出现问题
6、python多线程的使用场景：
    1、IO密集型任务
    2、多线程爬虫
    3、多线程服务器
'''

# 简单线程_thread 模块

import _thread
import time

def my_thread_fund(thread_name, count): # 线程函数
    for i in range(count):
        time.sleep(1)
        print(f"线程名是：{thread_name}, 第{i}次执行")

try:
    _thread.start_new_thread(my_thread_fund, ("线程1", 5)) # 创建子线程，并启动
    _thread.start_new_thread(my_thread_fund, ("线程2", 5))
except Exception as e:
    print("Error: 无法启动线程")
    print(e)

def main():
    for i in range(2):
        time.sleep(1)
        print(f"主线程，第{i}次执行\n") # 主线程要是退出了，则子线程也会退出，要确保在子线程结束前，主线程仍在运行；

if __name__ == "__main__":
    main()










